package com.example.miscontactos;

import com.example.miscontactos.Entidades.NombreAccion;
import com.example.miscontactos.Entidades.Telefono;

import BaseDeDatos.AccesoABaseDeDatos;
import android.app.Activity;
import android.content.ActivityNotFoundException;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract.CommonDataKinds.Phone;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.View;
import android.view.ViewGroup;
import android.view.View.OnClickListener;
import android.view.textservice.SentenceSuggestionsInfo;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

public class TabTelefono extends Activity 
{
	private ListView listView1;
	private static String CONTACTO_ID = "contactoId";
	private long contactoId = 0;
	static final int SEND_MESSAGE_REQUEST = 1;

	@Override
	protected void onCreate(Bundle savedInstanceState) 
	{
		super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_tab_telefono);
        listView1 = (ListView)findViewById(R.id.listaTelefonos);
        
        contactoId = this.getIntent().getExtras().getLong(CONTACTO_ID);
        Bundle b = this.getIntent().getExtras();
        
        contactoId = b.getLong(CONTACTO_ID);
        Telefono tel_data[] = new Telefono[b.size() - 1];
        
        if (b != null)
		{
			for (int i = 0; i < b.size() - 1; i ++)
			{
				tel_data[i] = new Telefono(b.getString(String.valueOf(i)));
			}	
			
			if(tel_data.length >= 1)
			{
				TelefonoAdapter adapter = new TelefonoAdapter(this, 
		                R.layout.fila_telefono, tel_data);
		                
		        listView1.setAdapter(adapter);
			}
			else
	        {
	        	String[] values = new String[] { getResources().getString (R.string.contacto_sin_telefono) };
				ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
						  android.R.layout.simple_list_item_1, android.R.id.text1, values);
				listView1.setAdapter(adapter);
	        }	        
		}
        	
	}

	/*@Override
	public boolean onCreateOptionsMenu(Menu menu) 
	{
		// Inflate the menu; this adds items to the action bar if it is present.
		getMenuInflater().inflate(R.menu.activity_tab_telefono, menu);
		return true;
	}*/
	
	public class TelefonoAdapter extends ArrayAdapter<Telefono>{

        Context context; 
        int layoutResourceId;    
        Telefono data[] = null;
        
        public TelefonoAdapter(Context context, int layoutResourceId, Telefono[] data) {
            super(context, layoutResourceId, data);
            this.layoutResourceId = layoutResourceId;
            this.context = context;
            this.data = data;
        }

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            View row = convertView;
            TelefonoHolder holder = null;
            final Telefono tel = data[position];
            
            if(row == null)
            {
                LayoutInflater inflater = ((Activity)context).getLayoutInflater();
                row = inflater.inflate(layoutResourceId, parent, false);
                
                holder = new TelefonoHolder();
                holder.imgLlamar = (ImageView)row.findViewById(R.id.imagenLlamar);
                holder.imgMensaje = (ImageView)row.findViewById(R.id.mandarMensaje);
                holder.txtNumero = (TextView)row.findViewById(R.id.tabTelefono);
                
                holder.imgLlamar.setOnClickListener(new OnClickListener() {
        	        public void onClick(View v) 
        	        {
        	        	AccionesUtilities.LlamarContacto(context, String.valueOf(contactoId), tel.numeroTelefono.toString(), "", "", NombreAccion.Llamada, "");
        	        }
        	    });
                
                holder.imgMensaje.setOnClickListener(new OnClickListener() {
        	        public void onClick(View v) 
        	        {
        	        	AccionesUtilities.MandarMensaje(TabTelefono.this, String.valueOf(contactoId), tel.numeroTelefono.toString(), "", "", NombreAccion.Mensaje, "");
        	        	//Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("sms:" + tel.telefono.toString()));
        	        	//startActivityForResult(intent, SEND_MESSAGE_REQUEST);
        	        }
        	    });
                
                row.setTag(holder);
            }
            else
            {
                holder = (TelefonoHolder)row.getTag();
            }
            
            holder.txtNumero.setText(tel.numeroTelefono);
            
            return row;
        }        
        
        //Acciona a realizar una vez que el mensaje a sido enviado.
        /*protected void onActivityResult(int requestCode, int resultCode, Intent data) 
        {
            if (requestCode == SEND_MESSAGE_REQUEST) 
            {
                if (resultCode == RESULT_OK) 
                {
                	//Consigo el numero de telefono al cual acabo de mandar el mensaje.
                	Uri contactUri = data.getData();
                    String[] projection = {Phone.NUMBER};

                    Cursor cursor = getContentResolver()
                            .query(contactUri, projection, null, null, null);
                    cursor.moveToFirst();

                    int column = cursor.getColumnIndex(Phone.NUMBER);
                    String number = cursor.getString(column);
                    
                    //Registro el mensaje enviado por el usuario.
                	AccesoABaseDeDatos.registrarAccionHistorial(TabTelefono.this, String.valueOf(contactoId), number, "", "", NombreAccion.Mensaje, "");
                }
            }
        }*/
        
        public class TelefonoHolder
        {
            TextView txtNumero;
            ImageView imgLlamar;
            ImageView imgMensaje;
        }
    }
}
